package ar.uade.distribuidas.tpo.servicios;

import java.io.InputStream;
import java.util.List;

import org.w3c.dom.Document;

public interface VentasService {

	/**
	 * Cuando un cliente quiere realizar una compra, este envia una solicitud de
	 * cotizacion a la ODV con los items en los que esta interesado.
	 * 
	 * @return id solicitud de cotizacion 
	 */
	List<Long> recibirSolicitudDeCotizacion(Document docu)  throws Exception;

	/**
	 * Cuando el operador de la ODV quiere procesar la solicitud de cotización
	 * de un cliente, ponerle precios y devolverla al cliente.
	 * 
	 * @return xml cotizacion
	 */
	String cotizarSolicitud(Long idSolicitud) throws Exception;

	/**
	 * Cuando un cliente quiere realizar una compra, este envia una solicitud de
	 * cotizacion a la ODV con los items en los que esta interesado.
	 * 
	 * @return id orden de pedido
	 */
	Long recibirOrdenDePedido(Document  docu)  throws Exception;

	/**
	 * Envío de rodamientos pedidos y conformación del Remito correspondiente.
	 * 
	 * @return xml remito
	 */
	public String enviarPedido(Long idOdp) throws Exception;

	/**
	 * generar factura
	 * 
	 * @return xml factura
	 */
	String generarVenta(long cuilCliente) throws Exception;
}